﻿
namespace Kyoh.Lib.Excel
{
    /// <summary>指定したブックまたは作業中のブックにあるすべての Worksheet オブジェクトのコレクションです。各 Worksheet オブジェクトはワークシートを表します。</summary>
	public class Worksheets : Component
	{
		private Worksheets(object exWorksheets, Component parent)
			: base(exWorksheets, parent)
		{
		}

        /// <summary>Excel COM オブジェクトで、新しいインスタンスを初期化します。</summary>
        /// <param name="obj">Excel COM オブジェクト</param>
        /// <param name="parent">親となる <see cref="Component"/> オブジェクト。</param>
		internal static Worksheets Create(object obj, Component parent)
		{
			return obj == null ? null : new Worksheets(obj, parent);
		}

        /// <summary>インデックスを指定して要素を取得します。</summary>
        /// <param name="index">インデックス。</param>
		public Worksheet this[int index]
		{
			get { return this[(object)index]; }
		}

        /// <summary>シート名を指定して要素を取得します。</summary>
        /// <param name="index">シート名。</param>
		public Worksheet this[string index]
		{
			get { return this[(object)index]; }
		}

		private Worksheet this[object index]
		{
			get { return Worksheet.Create(base.GetProperty("Item", index), this); }
		}
	}
}
